home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Xenosoft 2
/
Xenosoft 2 (Game collection)(1994).iso
/
bioforge
/
script
/
warhead.scp
< prev
next >
Wrap
Text File
|
1994-12-08
|
9KB
|
454 lines
// WARHEAD.SCR BY B. ADAMS
// LEX DISMANTLES THE MISSILE NEAR THE CRASHED DROPSHIP AND GETS THE WARHEAD
// ONCE LEX GETS THE WARHEAD ITS TIMER IS ACTIVATED.
{ BOMB_USE
I @Çó ^àä == $Ç╗ THEN
{
^àä = @Çì WARHEAD_MON
^ä┐ = 1
}
}
[ BLOWBOT2
00:10 @Ç¥ BCHBOT2_DEATH
]
{ BLAST_LEX
@Çì DAMAGE_LEX_ENERGY 666
//@@@ PLEASE TRANSLATE
@Ç║ (`ëÑ $üé "Aaaaahhh...!")
W 15
@Çå ( `ǽ , 255, -1024 )
// MAKE THE SCREEN FLASH WHITE
Ü 63 63 63 15
W 15
I @Çó ^àà == $Ç╝ THEN
^àà
I @Çó ^àä == $Ç╝ THEN
{
^àä
}
I @Çó ^àå == $Ç╝ THEN
^àå
G 6666 6666 6666
}
{ BLOWLEXAWAY
P ~ÇÇ
~ÇÇ = -4750
A OFF
// TELEPORT THE FIGURE TO THE EDGE OF THE LEDGE
u CURFIG OFF
:LOOP
G ~ÇÇ @Çé (CURFIG) @Çâ (CURFIG)
~ÇÇ += 8
â
I ~ÇÇ < -4724 THEN J #Çä
// @@@ PLEASE TRANSLATE
@Ç║ (`ëú $üé "Noooo....!")
// HAVE HIM RECOIL OFF THE LEDGE
I @Çä () IN -45,45 THEN
{
£ 0
M FALL_LEFT
}
E I @Çä () IN 45,135 THEN
{
£ 90
M FALL_BACKWARD
}
E I @Çä () IN -135,-45 THEN
{
£ -90
M KNOCKED_FORWARD
}
E
{
£ -180
M FALL_RIGHT
}
@Ç¥ KILLLEX
//@PROCESS DAMAGE_LEX_ENERGY 666
}
{ DESTROYITEMS
// WAIT FOR BLAST TO FINISH
W 2 SECONDS
╣
:TOP
I @Çí CURITEM BOMBHALL THEN ┤
I @üè == $Ç╝ THEN J #Çå
}
{ DISARM_USE
I ^éƒ != 1 THEN é
A OFF
G KNEEL WALK 20
£ -58 GRADUAL
I @ÇÆ RTHAND THEN
{
@ÇÜ RTHAND
f GROUND
}
// KNEEL DOWN
M KNEEL
// RUN MOTION OF LEX DISMANTLING THE MISSILE CONE
M GET_WARHEAD CONTINUE
W 2 SECONDS
^éí = 0
@Çå (`ü╝ , 100)
@Çè (^éƒ , +1, 0, 7, 2)
W 3 SECONDS
@ÇÜ BOMB
f RTHAND
^àà = @Çì (WARHEAD_TIMER)
// STOP THE "get_warhead" MOTION
o
// LEX REMOVED THE WARHEAD, NOW STAND UP
M GOT_WARHEAD CONTINUE
W 1 SECOND
o
M STAND CONTINUE
// ADDLOGENTRY LEX MISSILE
A ON
W 5 SECONDS
// SHOW THE PLAYER THAT HE IS IN DANGER!
@Ç¥ BOMB_USE
i LEX WARHEAD
}
{ DOOR_BLASTED
// MAKE THE BLAST DOOR NEUTRAL SO LEX CAN WALK THRU IT
^ä▓ = $é╝
^ä│ = $é╗
^ä┤ = $é╗
^ä╡ = $é╗
^ä╢ = $é╗
// CHANGE ART OF DOOR/TUNNEL TO SHOW BLAST DAMAGE
^é¥ = 1
^é₧ = 2
^éú = 2
}
{ KNOCKLEXDOWN_1
A OFF
I @Çä IN -90, 90 THEN
{
M KNOCKED_FORWARD
W 1 SECOND
M GET_UP_FORWARD
}
E
{
M FALL_BACKWARD
W 15
M GET_UP_BACK
}
A ON
}
{ KNOCKLEXDOWN_2
A OFF
I @Çä IN 91, 180 OR @Çä IN -179, -89 THEN
{
G -4733 -4003 -31
£ 180
M KNOCKED_FORWARD
W 15
M GET_UP_FORWARD
}
E
{
G -4733 -4003 -31
£ 0
M FALL_BACKWARD
W 15
M GET_UP_BACK
}
A ON
}
{ LEX_BOMB_DROP
@Ç¢ PLAYER
// CHECK TO SEE WHERE LEX CURRENTLY IS LOCATED
I (@Çí CURFIG FIREBTN2) == 1 THEN
{
^ä┐ = 2
^àä = @Ç¥ WARHEAD_MON
:TEST
â
I ^àç > 0 THEN J #Çî
// SWITCH TO OUTSIDE VIEW OF THE BLAST TUNNEL UNLESS ALREADY LOADED
I @ÇÄ BCHB != 1 THEN C BCHB
// RUN EXPLOSION ANIMATION
:CAM_CHECK
â
I @ÇÄ BCHB == 1 THEN
{
I @Çí CURFIG BOMBHALL THEN ^ä╜ = @Çì BLOWLEXAWAY
E @Çì DESTROYITEMS
@Ç¥ DOOR_BLASTED
@Ç¥ TUNNEL_EXPLOSION
// UNCOMMENT LINE BELOW WHEN BUG IT CAUSES IS FIXED -BKA
@Çì BLOWBOT2
C UNLOCK
é
}
E J #Çì
}
E
{
^ä┐ = 3
^àä = @Çì WARHEAD_MON
}
}
// MONITORCHECK IS DESIGNED TO RUN INDEFINATELY. IT IS SUPPOSED TO SUSPEND
// THE WARHEAD TIMER IF ANOTHER MONITOR IS STARTED AND THEN RESUME THE TIMER
// WHEN THE NON-WARHEAD MONITOR IS SHUT OFF. -BKA
{ MONITORCHECK
P ~ÇÇ
~ÇÇ = 0
:CHECK
I ~ÇÇ = 0 THEN
{
I ^àä == $Ç╗ && @Çú THEN
{
ÿ ^àà
~ÇÇ = 1
}
}
E
{
I ^àä == $Ç╗ && @Çú == $Ç╗ THEN
{
Ö ^àà
~ÇÇ = 0
}
}
â
J #ÇÅ
}
{ REMOVE_BOMB
I @ÇÜ BOMB != 1 THEN
{
Q "Can't find the warhead!" // DON'T TRANSLATE!
é
}
f COORDS 5555 5555 5555
}
{ STAGGERLEX
A OFF
I @Çä IN -90, 90 THEN
{
M WOAH_FORWARD
W 15
}
E
{
M WOAH_BACKWARD
W 15
}
A ON
}
[ TUNNEL_EXPLOSION
// 00:00 @MODIFYVAREVERYNTH(_XBM_FRAME, +1, 0, 14, 2)
00:02 @Çå (`ÇÑ )
^é£ = 1
I @Çí CURFIG BOMBRAD1 THEN
^ä╛ = @Çì KNOCKLEXDOWN_1
I @Çí CURFIG BOMBRAD2 THEN
^ä╛ = @Çì KNOCKLEXDOWN_2
I @Çí CURFIG STAGGER THEN
@Çì STAGGERLEX
00:04 ^é£ = 2
00:06 ^é£ = 3
00:08 ^é£ = 4
00:10 ^é£ = 5
00:12 ^é£ = 6
00:14 ^é£ = 7
00:16 ^é£ = 8
00:18 ^é£ = 9
00:20 ^é£ = 10
00:22 ^é£ = 11
00:24 ^é£ = 12
00:26 ^é£ = 13
00:28 ^é£ = 14
01:00 ^é£ = 0
]
[ WARHEAD_MON
I @Çú THEN é
MASM
m
^àê = 255
I ^ä┐ == 2 THEN
{
// SET THE TIME REMAINING TO 75 4/30TH'S OF A SECOND, OR 10 SECONDS
^àç = 75
}
I ^ä┐ == 3 THEN
{
// SET THE TIME REMAINING TO 15 4/30TH'S OF A SECOND, OR 2 SECONDS
^àç = 15
}
^àå = @Çì (HUNDREDTHS)
:LOOP
// SET THE ART FRAMES ACCORDINGLY
NO1A ^àÇ
NO2A ^àü
NO3A ^àé
NO4A ^àâ
â
// IF LEX IS NEAR THE BLAST DOOR, SHOW THE MONITOR FOR A COUPLE OF SECS
I ^ä┐ == 2 THEN
I ^àç <= 50 THEN
J #Çò
E
J #Çö
E
I ^àç > 0 THEN J #Çö
// ELSE JUMP ESCAPE_BUTTON
:ESCAPE_BUTTON
@Çå (`ü▒ )
^àå
^àê = 200
]
[ WARHEAD_TIMER
@Çì MONITORCHECK
:LOOP
00:04
^àÇ = ^àç / 100
^àÇ = 10 - ^àÇ
^àü = ^àç % 100
^àü = ^àü / 10
^àü = 10 - ^àü
^àé = ^àç % 10
^àé = 10 - ^àé
^àç --
// THE OLD SOUND, PIM_BEEP_6 SEEMS TO NOW BE SILENT. -KLD
@Çå `ü¡ ^àê
ò
// IF LEX HASN'T DROPPED THE WARHEAD AND THE WARHEAD MONITOR ISN'T
// RUNNING AND THE TIMER IS DOWN TO 2 SECONDS, CUT TO THE MONITOR.
I ^ä┐ <= 1 THEN
I ^àç <= 15 && @Çó ^àä == $Ç╗ THEN
{
^àä = @Çì WARHEAD_MON
J #Çù
}
E
I ^àç > 0 THEN J #Çù
// EXPLODE THE WARHEAD!
I ^ä┐ != 2 THEN
@Çì BLAST_LEX
// NOW THAT THE WARHEAD HAS EXPLODED, GET RID OF IT
@Çì REMOVE_BOMB
]
[ HUNDREDTHS
:LOOP
00:01
// CALCULATE THE "hundreths" OF A SECOND
^àâ ++
I ^àâ > 10 THEN ^àâ = 1
ò
J #ÇÖ
]
{ BLASTLOG
W 1 SECOND
i LEX BLASTDS
}
{ TIMER_25
// SET THE TIME REMAINING TO 202 4/30TH'S OF A SECOND, OR 27 SECONDS
^àç = 202
I @Çó ^àä == $Ç╗ THEN
{
^ä┐ = 1
^àä = @Çì WARHEAD_MON
}
W 2 SECONDS
^àä
}
//$ 26 - version number